﻿namespace KinonekoSoftware.JuXiaoYouDB.Documents.General.Personalities
{
    public sealed class FourQuadrantDiagram : IntroObject
    {
        private string _firstQuadrant;
        private string _secondQuadrant;
        private string _thirdQuadrant;
        private string _fourthQuadrant;
        private string _colorOfFirstQuadrant;
        private string _colorOfSecondQuadrant;
        private string _colorOfThirdQuadrant;
        private string _colorOfFourthQuadrant;
        private string _introOfFirstQuadrant;
        private string _introOfSecondQuadrant;
        private string _introOfThirdQuadrant;
        private string _introOfFourthQuadrant;
        private int    _x;
        private int    _y;
        private int    _maximum;

        public static FourQuadrantDiagram Debug { get; } = new FourQuadrantDiagram
        {
            FirstQuadrant  = "第一象限",
            SecondQuadrant = "第二象限",
            ThirdQuadrant  = "第三象限",
            FourthQuadrant = "第四象限",

        };
        
        /*
         *             +--------- Second Quadrant --------+
         *             |                |                 |
         *             |                |                 |
         *      Third Quadrant ---------+-------- First Quadrant
         *             |                |                 |
         *             |                |                 |
         *             +--------- Fourth Quadrant --------+
         */

        /// <summary>
        /// 获取或设置 <see cref="Maximum"/> 属性。
        /// </summary>
        public int Maximum
        {
            get => _maximum;
            set => SetValue(ref _maximum, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="Y"/> 属性。
        /// </summary>
        public int Y
        {
            get => _y;
            set => SetValue(ref _y, value);
        }
        /// <summary>
        /// 获取或设置 <see cref="X"/> 属性。
        /// </summary>
        public int X
        {
            get => _x;
            set => SetValue(ref _x, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="FourthQuadrant"/> 属性。
        /// </summary>
        public string FourthQuadrant
        {
            get => _fourthQuadrant;
            set => SetValue(ref _fourthQuadrant, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="ThirdQuadrant"/> 属性。
        /// </summary>
        public string ThirdQuadrant
        {
            get => _thirdQuadrant;
            set => SetValue(ref _thirdQuadrant, value);
        }
        /// <summary>
        /// 获取或设置 <see cref="SecondQuadrant"/> 属性。
        /// </summary>
        public string SecondQuadrant
        {
            get => _secondQuadrant;
            set => SetValue(ref _secondQuadrant, value);
        }
        /// <summary>
        /// 获取或设置 <see cref="FirstQuadrant"/> 属性。
        /// </summary>
        public string FirstQuadrant
        {
            get => _firstQuadrant;
            set => SetValue(ref _firstQuadrant, value);
        }


        /// <summary>
        /// 获取或设置 <see cref="ColorOfFourthQuadrant"/> 属性。
        /// </summary>
        public string ColorOfFourthQuadrant
        {
            get => _colorOfFourthQuadrant;
            set => SetValue(ref _colorOfFourthQuadrant, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="ColorOfThirdQuadrant"/> 属性。
        /// </summary>
        public string ColorOfThirdQuadrant
        {
            get => _colorOfThirdQuadrant;
            set => SetValue(ref _colorOfThirdQuadrant, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="ColorOfSecondQuadrant"/> 属性。
        /// </summary>
        public string ColorOfSecondQuadrant
        {
            get => _colorOfSecondQuadrant;
            set => SetValue(ref _colorOfSecondQuadrant, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="ColorOfFirstQuadrant"/> 属性。
        /// </summary>
        public string ColorOfFirstQuadrant
        {
            get => _colorOfFirstQuadrant;
            set => SetValue(ref _colorOfFirstQuadrant, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="IntroOfFourthQuadrant"/> 属性。
        /// </summary>
        public string IntroOfFourthQuadrant
        {
            get => _introOfFourthQuadrant;
            set => SetValue(ref _introOfFourthQuadrant, value);
        }
        /// <summary>
        /// 获取或设置 <see cref="IntroOfThirdQuadrant"/> 属性。
        /// </summary>
        public string IntroOfThirdQuadrant
        {
            get => _introOfThirdQuadrant;
            set => SetValue(ref _introOfThirdQuadrant, value);
        }
        /// <summary>
        /// 获取或设置 <see cref="IntroOfSecondQuadrant"/> 属性。
        /// </summary>
        public string IntroOfSecondQuadrant
        {
            get => _introOfSecondQuadrant;
            set => SetValue(ref _introOfSecondQuadrant, value);
        }
        /// <summary>
        /// 获取或设置 <see cref="IntroOfFirstQuadrant"/> 属性。
        /// </summary>
        public string IntroOfFirstQuadrant
        {
            get => _introOfFirstQuadrant;
            set => SetValue(ref _introOfFirstQuadrant, value);
        }
    }
}